package dto

// GetUserReq
type GetUserReq struct {
	UID int64 `form:"uid" json:"uid" validate:"required"`
}

// DeleteUserReq
type DeleteUserReq struct {
	UID int64 `form:"uid" json:"uid" validate:"required"`
}

type CreateUserReq struct {
	Username   string   `json:"username" form:"username" validate:"required"`
	Nickname   string   `json:"nickname" form:"nickname"`
	Avatar     string   `json:"avatar" form:"avatar"`
	UserGender int8     `json:"userGender" form:"userGender"`
	UserEmail  string   `json:"userEmail" form:"userEmail"`
	Url        string   `json:"url" form:"url"`
	UserPhone  string   `json:"userPhone" form:"userPhone"`
	UserRoles  []string `json:"userRoles" form:"userRoles"`
	IsAdmin    int8     `json:"isAdmin" form:"isAdmin"`
	Password   string   `json:"password" form:"password" validate:"required"`
	Repassword string   `json:"repassword" form:"repassword" validate:"required"`
	State      int8     `json:"state" form:"state"`
}

type UpdateUserReq struct {
	Uid int64 `json:"uid" form:"uid" validate:"required"`
	CreateUserReq
}

type ListUserReq struct {
	Uid        int64  `json:"uid" form:"uid"`
	Username   string `json:"username" form:"username"`
	Nickname   string `json:"nickname" form:"nickname"`
	UserEmail  string `json:"userEmail" form:"userEmail"`
	State      int8   `json:"state" form:"state"`
	UserGender int8   `json:"userGender" form:"userGender"`
	Current    int    `json:"current" form:"current"`
	Size       int    `json:"size" form:"size"`
}

type RepassUserReq struct {
	Uid        int64  `json:"uid" form:"uid" validate:"required"`
	Password   string `json:"password" form:"password" validate:"required"`
	RePassword string `json:"repassword" form:"repassword" validate:"required"`
}

type UpdateUserPassReq struct {
	OldPassword string `json:"oldPassword" form:"oldPassword" validate:"required"`
	Password    string `json:"password" form:"password" validate:"required"`
	RePassword  string `json:"rePassword" form:"rePassword" validate:"required"`
}

type UpdateUserProfileReq struct {
	Avatar      string `json:"avatar" form:"avatar"`
	Nickname    string `json:"nickname" form:"nickname" validate:"required"`
	Description string `json:"description" form:"description"`
}
